#ifndef __PARAMETER_
#define __PARAMETER_

#include <iostream>
#include <opencv2/core.hpp>

// 相机相关参数
struct CameraParam
{
    // 图像宽度
    int imgWidth;
    // 图像高度
    int imgHeight;
    // 额定帧率
    int FPS;
    // 相机标定参数
    cv::Mat cameraMatrix;
    CameraParam(const std::string &);
};
extern CameraParam cameraParam;

// 数据集参数
struct DatasetParam
{
    // 标签种类数量
    int nc;
    // 标签名称
    std::vector<std::string> className;
    DatasetParam(const std::string &);
};
extern DatasetParam datasetParam;

// 检测器参数
struct DetectParam
{
    // 检测对象数量
    int ItemSize;
    // 置信度阈值
    float ConfThres;
    // 非极大值抑制阈值
    float NMSThres;
    // Anchors数量
    std::vector<int> AnchorSize;
    DetectParam(const std::string &);
};
extern DetectParam detectParam;

// 决策器参数
struct StrategyParam
{
    // 模型路径
    int maxDis;
    StrategyParam(const std::string &);
};
extern StrategyParam strategyParam;

// Robot参数
struct RoboParam
{
    // 模型路径
    std::string modelPath;
    RoboParam(const std::string &);
};
extern RoboParam roboParam;

#endif